package org.ljy.springblog.utils;

//用户加密和解密

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.DigestUtils;

import java.io.UnsupportedEncodingException;
import java.util.UUID;
@Slf4j
public class SecurityUtils {

    /**
     *  加密(用于注册时使用)
     */
    public static void encrypt(String password) throws UnsupportedEncodingException {
        String salt = UUID.randomUUID().toString().replace("-","");
        //2.对密码加密
        String secretPassword = DigestUtils.md5DigestAsHex((password+salt).getBytes("UTF-8"));
        //3.数据库存储 密文+盐值
        String sqlPassword = secretPassword+salt;
        System.out.println(sqlPassword);
    }
    /**
     *  解密（用于用户登录时使用）
     */
    public static boolean decode(String inputPassword,String sqlPassword) {
        if(sqlPassword==null || sqlPassword.length()!=64) {
            log.error("密码长度不足");
            return false;
        }
        //2.取出数据库中存储的颜值
        String salt = sqlPassword.substring(32,64);
        //3.验证（加密）
        String secretPasssowrd = null;
        try {
            secretPasssowrd = DigestUtils.md5DigestAsHex((inputPassword+salt).getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
        return (secretPasssowrd+salt).equals(sqlPassword);
    }
}
